#pragma once

#include <vector>
#include <common\IBaseCallback.h>

class IDebugEnginer
{
public:
    virtual int Open(LPTSTR strPathName) = NULL;
    virtual int Run() = NULL;
    virtual int Stop() = NULL;
    virtual int Pause() = NULL;
    virtual int Interrupte(int nType) = NULL;

    virtual HRESULT RegisterObserver( IBaseCallback* piObserver ) = NULL;
    virtual HRESULT UnregisterObserver( IBaseCallback* piObserver ) = NULL;
};

typedef IDebugEnginer* (WINAPI *GetDebugEng)();
typedef void (WINAPI *FreeDebugEng)(IDebugEnginer* );